
import java.util.Scanner;

/**
 * 1. 输入用户名，要求6-20位字母、数字、下划线组成
 * 2. 输入密码，要求(必须包含大小写字母和数字的组合，不能使用特殊字符，长度不少于6位）
 * 3. 输入确认密码，要求和密码一致
 * 4. 输入邮箱
 */
public class Register {
    private final Scanner scan = new Scanner(System.in);
    //主函数调用方法
    public static void main(String[] args) {
        Register user = new Register();
        user.register();
    }

    //注册方法
    private void register(){
        //账号
        System.out.println("请输入账号（要求6-20位字母、数字、下划线组成）：");
        String name;
        while (true) {
            String username = scan.next();
            if (username.matches("^[a-zA-Z0-9]{6,20}")) {
                name = username;
                break;
            } else {
                System.out.println("输入的账号不符合要求，请重新输入");
            }
        }
        //密码
        System.out.println("请输入密码（必须包含大小写字母和数字的组合，不能使用特殊字符，长度不少于6位）：");
        String password;
        while (true) {
            String userPassword = scan.next();
            if (userPassword.matches("^[a-zA-Z0-9]{6,20}")) {
                password = userPassword;
                break;
            } else {
                System.out.println("输入的密码不符合要求，请重新输入");
            }
        }
        //确认密码
        System.out.println("请输入密码（确保与上一步输入的密码一致）：");
        while (true) {
            String passAgain = scan.next();
            if (passAgain.equals(password)) {
                break;
            }
            System.out.println("确认密码有误，请重新确认密码");
        }
        //确认邮箱
        System.out.println("请输入邮箱：");
        String email;
        while (true) {
            String userEmail = scan.next();
            if (userEmail.matches("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$")) {
                email = userEmail;
                break;
            } else {
                System.out.println("输入的邮箱格式有误，请重新输入");
            }
        }
        System.out.println("注册成功！\n您的账户是：" + name + "，您的密码是：" + password + "，您的邮箱是：" + email + "。");
    }


}
